package cn.fuxue.hrms.common.base;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 通用实体类 反序列化->校验->加入到数据库 模板方法
 * author：fuxue
 * description；模板方法
 * @param <T> 实体类
 */
public abstract class BaseEntityProcessor<T> {


    // 定义处理流程骨架（不可被子类重写）
    public final Integer process(List<Map<String, Object>> mapList) {
        int count = 0;
        for (Map map : mapList) {
            T entity=validate(map);
            count+=save(entity);
        }
        return count;
    }

    // 抽象方法，由子类实现具体逻辑
    protected abstract T validate(Map map);
    protected abstract Integer save(T entity);
}
